# -*- coding: utf-8 -*-
# @version        : 1.0
# @Creaet Time    : 2021/10/19 15:47
# @File           : case07.py
# @IDE            : PyCharm
# @desc           : 案例06，中间件


"""
你可以向 FastAPI 应用添加中间件.

"中间件"是一个函数,它在每个请求被特定的路径操作函数处理之前,以及在每个响应返回之前工作.

- 它接收项目中的每一个请求.
- 它可以对这个请求做一些事情或者执行任何需要的代码.
- 它将请求传递给应用程序的其他部分 (通过某种路径操作).
- 它获取应用程序生产的响应 (通过某种路径操作).
- 它可以对该响应做些什么或者执行任何需要的代码.
- 然后它返回这个 响应.

注：
如果你使用了 yield 关键字依赖, 依赖中的退出代码将在执行中间件后执行.
如果有任何后台任务(稍后记录), 它们将在执行中间件后运行.

创建中间件
要创建中间件你可以在函数的顶部使用装饰器 @app.middleware("http").
中间件参数接收如下参数:
- request.
- 一个函数 call_next 它将接收 request 作为参数.
  - 这个函数将 request 传递给相应的 路径操作.
  - 它将返回由相应的路径操作生成的 response.
- 你可以在返回 response 前进一步修改它.

中间件无法使用 APIRouter 实例创建，只能使用 FastAPI 实例创建，具体创建方式，在 run.py 中
"""


from fastapi import APIRouter

case07 = APIRouter()


@case07.get("/", summary="案例7初始接口")
def case07_root():
    return "case07_root"